using System;
using System.Collections.Generic;
using System.Text;

using HHo_Model;
using System.Data.SqlClient;
using System.Data;


namespace HHo_Negocio
{
    public class GestorUsuario
    {
        public List<E_Usuario> ConsultarUsuarioExiste( E_Usuario eUsuario)
        {
            SqlParameter oP1, oP2;
            SqlDataReader oRdr;
            List<E_Usuario> lstUsuario;
            E_Usuario oUsuario;

            oP1 = new SqlParameter("@USR_ID", SqlDbType.Int);
            oP1.Direction = ParameterDirection.Input;
            if (eUsuario.UsrId > 0)
                oP1.Value = eUsuario.UsrId;

            oP2 = new SqlParameter("@USR_LOGIN", SqlDbType.VarChar);
            oP2.Direction = ParameterDirection.Input;
            if (eUsuario.UsrLogin.Length > 0)
                oP2.Value = eUsuario.UsrLogin;

            oRdr = SQLHelper.ExecuteReader(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure,
                "HH_SS_USUARIO", oP1, oP2);

            lstUsuario = new List<E_Usuario>();
            if (oRdr != null)
            {
                while (oRdr.Read())
                {
                    oUsuario = new E_Usuario();

                    if (oRdr.GetValue(0) != DBNull.Value)
                    {
                        oUsuario.UsrId = oRdr.GetInt32(0);
                    }

                    if (oRdr.GetValue(1) != DBNull.Value)
                        oUsuario.UsrLogin = oRdr.GetString(1);

                    if (oRdr.GetValue(2) != DBNull.Value)
                    {
                        oUsuario.UsrNombre = oRdr.GetString(2);
                    }

                    if (oRdr.GetValue(3) != DBNull.Value)
                    {
                        oUsuario.UsrFecCrea = oRdr.GetDateTime(3);
                    }

                    lstUsuario.Add(oUsuario);
                }
            }
            return lstUsuario;
        }


        public int RegistraUsuario(E_Usuario oUsuario)
        {
            SqlParameter oP1, oP2, oP3;

            oP1 = new SqlParameter("@USR_LOGIN", SqlDbType.VarChar);
            oP1.Direction = ParameterDirection.Input;
            oP1.Value = oUsuario.UsrLogin;

            oP2 = new SqlParameter("@USR_NOMBRE", SqlDbType.VarChar);
            oP2.Direction = ParameterDirection.Input;
            oP2.Value = oUsuario.UsrNombre;

            oP3 = new SqlParameter("@USRID", SqlDbType.Int);
            oP3.Direction = ParameterDirection.Output;

            SQLHelper.ExecuteNonQuery(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure, 
                "[HH_SI_USUARIO]", oP1, oP2, oP3);

            return Int32.Parse(oP3.Value.ToString());

        }

    }
}
